#ifndef at_cmd_h
#define at_cmd_h


/****************************************
发出指令： *at_cmd
等待应答， 收到 *rsp_ok, 或者*rsp_err 字符的数据后返回
           否则， 超时后返回。
*****************************************/
typedef struct {
	char *at_cmd;
	char *rsp_ok;
	char *rsp_err;
	int timeout_ms;
}at_cmd_t;


typedef struct {
	char iccid[21];     //  iccid 20字符
	unsigned char mt_flags;
	unsigned char creg;       // 1, 5
	unsigned char csq;        // 0~31
}mt_msg_t;
typedef enum {
	FLAG_MT_ON = 1<<0,
	FLAG_SIMCARD_IN = 1<<1,
	FLAG_USB_OK = 1<<2,
}mt_flags_e;

int at_tst(void) ;
const mt_msg_t *read_mt_msg(void);
const mt_msg_t *get_mt_msg(void);

/*****************************************************
读取4G信号强度csq
return : 0~31 , csq
         -1,  read fail
***********************************************************/
int at_read_csq(void);

/************************************************************************
发送at指令透传
**************************************************************************/
int  at_raw_cmd(const char *raw_cmd);

#endif
